While loops
While Schleifen sind For Schleifen ähnlich, haben aber weniger Funktionalität. Eine While Schleife führt den While Code Block aus so lange die Bedingung wahr ist. Zum Beispiel wird der untere Code 10 Mal ausgeführt:
int n = 0;
while (n < 10) {
n++;
}
While Schleifen können endlos ausgeführt werden, wenn die Bedingung niemals falsch werden kann (nicht 0):
while (1) {
/* tu etwas */
}
Schleifenanweisungen
Es gibt zwei wichtige Schleifenanweisungen, die zusammen mit allen Schleifenarten in C benutzt werden können - break
und continue
.
Die break
Anweisung stoppt die folgende Schleife nach 10 durchgängen, obwohl die Schleife selbst niemals enden würde:
int n = 0;
while (1) {
n++;
if (n == 10) {
break;
}
}
Im folgenden Code, sorgt die continue
Anweisung dafür, dass die printf
Funktion übersprungen wird, sodass nur gerade Zahlen ausgegeben werden:
int n = 0;
while (n < 10) {
n++;
/* check, dass n ungerade ist */
if (n % 2 == 1) {
/* geh zurück zum Anfang des while Blocks */
continue;
}
/* wir kommen hier nur an, wenn n gerade ist */
printf("Die Zahl %d ist gerade.\n", n);
}
Übung
Die array
Variable besteht aus 10 Zahlen. In der While Schleife müssen wir 2 if
Bedingungen einbauen, die den
Fluss der Schleife folgendermaßen verändern (ohne den printf
Aufruf zu verändern):
- Wenn die aktuelle Zahl kleiner als 5 ist, gib sie nicht aus
- Wenn die momentane Zahl größer als 10 ist, gib sie nicht aus und beende die Schleife
Beachte, dass du in einer Endlosschleife hängen bleibst, wenn du die Iteratorvariable i
nicht erhöhst und die continue
Anweisung benutzt.